Package de.yaams.extensions.rgssproject.script

Source Code of de.yaams.extensions.rgssproject.script.ScriptAction

/**
*
*/
package de.yaams.extensions.rgssproject.script;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JPanel;

import com.jidesoft.editor.CodeEditor;

import de.yaams.extensions.jruby.JRubyPlugin;
import de.yaams.maker.helper.gui.form.FormElement;
import de.yaams.maker.helper.gui.form.FormElementChangeListener;
import de.yaams.maker.helper.gui.form.FormTextField;
import de.yaams.maker.helper.gui.form.core.FormBuilder;
import de.yaams.maker.helper.gui.tabs.SplitActionListElement;
import de.yaams.maker.helper.language.I18N;
import de.yaams.maker.programm.project.Project;

/**
* @author abt
*
*/
public class ScriptAction extends SplitActionListElement {

  protected String content;
  protected int number;

  /**
   * Create a new ScriptAction
   *
   * @param title
   * @param desc
   * @param icon
   */
  public ScriptAction(final Object title, final Object content, final Object number) {
    super(title.toString(), null, "script");
    this.content = content.toString();
    // this.number = Integer.valueOf(number);
  }

  /*
   * (non-Javadoc)
   *
   * @see
   * de.yaams.packandgo.helper.gui.tabs.SplitActionListElement#getComponent
   * (de.yaams.packandgo.programm.project.Project)
   */
  @Override
  protected Component getComponent(final Project p) {
    // add name
    final FormBuilder f = new FormBuilder("db.script");
    f.addElement("basic.name", new FormTextField(I18N.t("Name"), title).addChangeListener(new FormElementChangeListener() {

      @Override
      public void stateChanged(FormElement form) {
        title = form.getContentAsString();

        if (!modified) {
          modified = true;
        }

      }
    }));

    final JPanel j = new JPanel(new BorderLayout());
    j.add(f.getPanel(true), BorderLayout.NORTH);

    // add code
    final CodeEditor code = JRubyPlugin.getCodeEditor(content);
    code.addKeyListener(new KeyListener() {

      @Override
      public void keyTyped(final KeyEvent arg0) {}

      @Override
      public void keyReleased(final KeyEvent e) {
        // wrong keys?
        if (e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_LEFT || e.getKeyCode() == KeyEvent.VK_DOWN
            || e.getKeyCode() == KeyEvent.VK_RIGHT) {
          return;
        }

        if (!modified) {
          modified = true;
        }

        content = code.getText();
      }

      @Override
      public void keyPressed(final KeyEvent arg0) {}
    });

    j.add(code, BorderLayout.CENTER);
    return j;
  }

  /**
   * @return the content
   */
  public String getContent() {
    return content;
  }

  /**
   * @return the number
   */
  public int getNumber() {
    return number;
  }

}
TOP

Related Classes of de.yaams.extensions.rgssproject.script.ScriptAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.